package seal_request

import (
	"private-go-sdk/http"
	"encoding/json"
	"private-go-sdk/model/common"
)

type SealDiypermissionconfigUpdateRequest struct {
	CustomParamSelectRequest *common.CustomParamSelectRequest `json:"customParamSelectRequest"`
	// <ext>core:true</ext> 【新字段名称 】新字段名称  【作用】 修改自定义字段名称  【传参】 1、不传值则不做修改； 2、最大长度：50（包含）。
	Name string `json:"name,omitempty"`
	// <ext>core:true</ext> 【状态】状态 【作用】修改自定义权限字段状态 【传参】取值范围：NORMAL(正常)，DISABLE(停用)；不传值则不做修改。
	Status string `json:"status,omitempty"`
	// <ext>core:true</ext> 【是否必填】是否必填 【作用】 指定该字段在创建编辑印章时是否必须设置成员 【传参】 取值范围：true（必填），false（非必填）；不传值则不做修改。
	Necessary *bool `json:"necessary,omitempty"`
	// <ext>core:true</ext> 【更新生效印章形式】更新生效印章形式  【作用】 更新该字段在指定形式印章生效  【传参】 取值范围：ELECTRONIC（电子印章），PHYSICS（物理印章），UKEY（Ukey印章），MOBILE（移动印章）；不传值则不做修改。
	SealTypes []string `json:"sealTypes,omitempty"`
	// <ext>core:true</ext> 【修改权限项】修改权限项 【作用】 修改该字段拥有当前印章的权限项 【传参】 取值范围：SEAL_ADMIN（管理），SEAL_USER（使用），SEAL_VIEW（查看）；不传值则不做修改。
	SealPermissionTypes []string `json:"sealPermissionTypes,omitempty"`
	// <ext>core:true</ext> 【修改具体管理权限】修改具体管理权限 【作用】 可修改具体的管理权限 【传参】 取值范围： BASE_INFO_MANAGE（基本信息管理）, SEAL_IMAGE_CHANGE（章面修改）, PERMISSION_MANAGE（权限调整）, ENABLESEAL（启用）, DISABLESEAL（停用）, REVOKESEAL（注销）, DELETESEAL（删除）, SEAL_AUDIT（印章审计）, SEAL_EMR（紧急用印、仅物理印章支持）, SEAL_UKEY_PIN_CHANGE（修改Pin码、仅Ukey章支持）, SEAL_CHANG_WORK_FLOW（章筒更换印章、仅物理印章支持）, BIND_UNBIND_DEVICE（绑定/解绑设备、仅物理印章支持）, SET_SEAL_BOX_WIFI（配置章筒WiFi、仅物理印章支持）, MANAGE_SEAL_BOX_FINGERPRINT（管理章筒指纹、仅物理印章支持）, OPEN_DOOR_GET_SEAL（开门取章、仅物理印章支持）, UKEY_CANCEL_CONNECT（断开Ukey远程连接）； 不传值则不做修改。
	SealChildPermissionTypes []string `json:"sealChildPermissionTypes,omitempty"`
	// <ext>core:true</ext> 【修改具体使用权限】修改具体使用权限 【作用】 可修改具体的使用权限 【传参】 取值范围： SEAL_USE（文件用印）, UKEY_CONNECT（申请Ukey远程连接）； 不传值则不做修改。
	SealUseSealChildPermissionTypes []string `json:"sealUseSealChildPermissionTypes,omitempty"`
}
func (obj SealDiypermissionconfigUpdateRequest) GetUrl() string {
    return "/seal/diypermissionconfig/update"
}

func (obj SealDiypermissionconfigUpdateRequest) GetHttpParameter() *http.HttpParameter {
    parameter := http.NewPostHttpParameter()
    jsonBytes, _ := json.Marshal(obj)
    parameter.SetJsonParamer(string(jsonBytes))
    return parameter
}
